package _21_多线程juc.demo01;

public class _note_ {
}
/**
 * 线程创建的三种方式
 *      1. 继承 Thread 类（已经实现 Runnable 接口）    : 不建议使用，单继承局限
 *      2. 实现 Runnable 接口                       : 建议使用，可避免单继承，更加灵活
 *      3. 实现 Callable,Future 接口                : 建议使用，
 *      4. 使用线程池
 *
 * 线程终止的方法
 *      1. 自然终止：执行完 run 或 call 方法
 *      2. 异常退出：遇到异常终止
 *      3. 手动终止：
 *          1. stop() 方法：不建议使用，会立即终止当前线程，会导致锁混乱或资源(文件,连接)未正确释放 引起错误
 *          2. 自定义一个 volatile 变量 标记是否终止：如果是阻塞方法，会一直阻塞，直到拿到时间片才能终止
 *          3. 使用 interrupt() 方法：建议，jdk给所有阻塞方法都抛出了异常 InterruptedException
 */